package collection.ListTest;

import java.util.HashSet;

/**
 * 
 * 测试形成环式链表，
 * 就是如果有后续节点，则next是后续节点
 * 若无后续节点，则next是根节点
 * 这样就能形成连环式链表
 * 这个形成的实际上是LinkedList
 * @author lcx
 *
 */
public class FormCircleTest {

	public static void formCircleList(Node root)
	{
		Node tag=root;
		while(tag.next!=null)
			tag=tag.next;
		tag.next=root;
	}
	
	public static void printCircleList(Node root)
	{
		HashSet<Node> set=new HashSet();
		Node tag=root;
		do
		{
			System.out.println(tag.val);
			tag=tag.next;
		}
		while(tag!=null&&set.add(tag));
	}
	
	public static void main(String[] args) {
		Node root=new Node(1);
		SingleList list=new SingleList(root);
		list.initSample();
		formCircleList(root);
		printCircleList(root);
	}
}
